package com.app.brilliant.game.service;

import com.app.brilliant.game.bean.WechatQrCode;
import com.app.brilliant.game.response.WechatQrCodeResponse;
import com.app.brilliant.game.response.WechatQrStatusResponse;

/**
 * 微信二维码服务接口
 */
public interface WechatQrCodeService {

    /**
     * 生成微信二维码
     * 
     * @return 二维码响应信息
     */
    WechatQrCodeResponse generateQrCode();

    /**
     * 检查二维码状态
     * 
     * @param qrId 二维码ID
     * @return 二维码状态响应信息
     */
    WechatQrStatusResponse checkQrStatus(String qrId);

    /**
     * 处理微信回调
     * 
     * @param code  微信授权码
     * @param state 状态参数（二维码ID）
     */
    void handleCallback(String code, String state);

    /**
     * 根据二维码ID获取二维码信息
     * 
     * @param qrId 二维码ID
     * @return 二维码信息
     */
    WechatQrCode getQrCode(String qrId);

    /**
     * 更新二维码状态
     * 
     * @param qrId     二维码ID
     * @param status   状态
     * @param userInfo 用户信息
     */
    void updateQrStatus(String qrId, String status, WechatQrStatusResponse.WechatUserInfo userInfo);

    /**
     * 生成绑定微信二维码
     * 
     * @return 二维码响应信息
     */
    WechatQrCodeResponse generateBindQrCode(Long devId);
}